const CONFIG = {
    vue: 'Vue',
    'vue-router': 'VueRouter',
    axios: 'axios',
    echarts: 'echarts',
    nprogress: 'NProgress',
    'vue-quill-editor': 'VueQuillEditor'
}

module.exports = {
    publicPath: '/vue-manager',
    // runtimeCompiler: true,
    // devServer: {
    //     proxy: {
    //         "/api": {
    //             target: "http://localhost/manager/v",
    //             changeOrigin: true
    //         }
    //     }
    // },
    // chainWebpack / configureWebpack
    chainWebpack: config => {
        // 发布模式
        config.when(process.env.NODE_ENV === 'production', config => {
            // 自定义打包入口
            config.entry('app').clear().add('./src/main-prod.js')
            config.plugins.delete('prefetch')
            config.devServer.compress(true)
            config.set('externals', CONFIG)
            config.plugin('html').tap(args => {
                args[0].isProd = true
                return args;
            })
        })
        // 开发模式
        config.when(process.env.NODE_ENV === 'development', config => {
            // 自定义打包入口
            config.entry('app').clear().add('./src/main-dev.js')
            config.devServer.compress(true)
            // config.optimization.minimize(true);
            // config.optimization.splitChunks({
            //     chunks: 'all'
            // })
            config.devServer.port(8080).open(true).proxy({
                "/api": {
                    target: "http://localhost/manager/v",
                    changeOrigin: true
                }
            })
            config.plugin('html').tap(args => {
                args[0].isProd = false
                return args;
            })
        })
    },
}